﻿Public Class DproformaDetalle

    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pProformaDetalle As EproformaDetalle) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalle_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaDetalle.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaDetalle.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
                cmd.Parameters.Add("@idEdificio", SqlDbType.Int).Value = pProformaDetalle.idEdificio
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaDetalle.idModelo
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = pProformaDetalle.idUndInmob
                cmd.Parameters.Add("@idTpoInmueble", SqlDbType.Int).Value = pProformaDetalle.idTpoInmueble
                cmd.Parameters.Add("@monto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.monto
                cmd.Parameters.Add("@dscto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.descuento
                cmd.Parameters.Add("@dsctoMonto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.dsctoMonto
                cmd.Parameters.Add("@montoFinal", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.total
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaDetalle.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirVersus(ByVal descEmpresa As String, ByVal pProformaDetalle As EproformaDetalle) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalle_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProformaDetalle.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaDetalle.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaDetalle.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
                cmd.Parameters.Add("@idEdificio", SqlDbType.Int).Value = pProformaDetalle.idEdificio
                cmd.Parameters.Add("@nomEdiMzn", SqlDbType.VarChar, 55).Value = pProformaDetalle.descEdificio.Trim
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaDetalle.idModelo
                cmd.Parameters.Add("@nomModelo", SqlDbType.VarChar, 55).Value = pProformaDetalle.descModelo.Trim
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = pProformaDetalle.idUndInmob
                cmd.Parameters.Add("@nroInmueble", SqlDbType.VarChar, 10).Value = pProformaDetalle.nroInmueble.Trim
                cmd.Parameters.Add("@idTpoInmueble", SqlDbType.Int).Value = pProformaDetalle.idTpoInmueble
                cmd.Parameters.Add("@descTpoInmueble", SqlDbType.VarChar, 55).Value = pProformaDetalle.descTpoInmueble.Trim
                cmd.Parameters.Add("@monto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.monto
                cmd.Parameters.Add("@dscto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.descuento
                cmd.Parameters.Add("@dsctoMonto", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.dsctoMonto
                cmd.Parameters.Add("@montoFinal", SqlDbType.Decimal, 15, 2).Value = pProformaDetalle.total
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaDetalle.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    'Public Shared Function Editar(ByVal descEmpresa As String, ByVal pProformaDetalle As EproformaDetalle) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_edit", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
    '            cmd.Parameters.Add("@idProformaDetalle", SqlDbType.Int).Value = pProformaDetalle.idProformaDetalle
    '            cmd.Parameters.Add("@idInmueble", SqlDbType.Int).Value = pProformaDetalle.idUndInmob
    '            cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pProformaDetalle.estado
    '            cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaDetalle.idUsuario
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function
    'Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pProformaDetalle As EproformaDetalle) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_del", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
    '            cmd.Parameters.Add("@idProformaDetalle", SqlDbType.Int).Value = pProformaDetalle.idProformaDetalle
    '            cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaDetalle.idUsuario
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function
    Public Shared Function Filtrar(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EproformaDetalle)
        Dim proformaDetalles As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalle_fil", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                cmd.Parameters.Add("@idproforma", SqlDbType.Int).Value = pProforma.idProforma
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformaDetalles = New List(Of EproformaDetalle)
                            Dim proformaDetalle As EproformaDetalle = Nothing
                            Do While dr.Read
                                proformaDetalle = New EproformaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdificio")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTechoPropio")), _
                                    dr.GetString(dr.GetOrdinal("fchTechoPropio")), _
                                    dr.GetInt32(dr.GetOrdinal("EstadoTechoPropio")), _
                                    dr.GetDecimal(dr.GetOrdinal("bonoTechoPropio")))
                                proformaDetalles.Add(proformaDetalle)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformaDetalles
    End Function
    Public Shared Function Filtrar(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVentaDetalle)
        Dim separacionVentaDetalles As List(Of EseparacionVentaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalle_fil", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idproforma", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentaDetalles = New List(Of EseparacionVentaDetalle)
                            Dim separacionVentaDetalle As EseparacionVentaDetalle = Nothing
                            Do While dr.Read
                                separacionVentaDetalle = New EseparacionVentaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdificio")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTechoPropio")))
                                separacionVentaDetalles.Add(separacionVentaDetalle)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentaDetalles
    End Function
    Public Shared Function FiltrarEstado(ByVal descEmpresa As String, ByVal pSeparacionVenta As EseparacionVenta) As List(Of EseparacionVentaDetalle)
        Dim separacionVentaDetalles As List(Of EseparacionVentaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalleEstado_fil", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pSeparacionVenta.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pSeparacionVenta.idEtapa
                cmd.Parameters.Add("@idproforma", SqlDbType.Int).Value = pSeparacionVenta.idSeparacionVenta
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            separacionVentaDetalles = New List(Of EseparacionVentaDetalle)
                            Dim separacionVentaDetalle As EseparacionVentaDetalle = Nothing
                            Do While dr.Read
                                separacionVentaDetalle = New EseparacionVentaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdificio")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstadoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTechoPropio")), _
                                    dr.GetString(dr.GetOrdinal("fchTechoPropio")), _
                                    dr.GetInt32(dr.GetOrdinal("EstadoTechoPropio")))
                                separacionVentaDetalles.Add(separacionVentaDetalle)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return separacionVentaDetalles
    End Function

    ''' <summary>  
    ''' AUTOR           :     JULIO HR 
    ''' FECHA           :     16/12/2009
    ''' AUTOR MOD.      :     JULIO HR
    ''' FEC. MOD.       :     16/12/2009
    ''' DESCRIPCION     :     LISTA LOS INMUEBLES ESPECIFICADOS
    ''' </summary>
    ''' <param name="idProyecto">   id del  proyecto                    </param>
    ''' <param name="idEtapa">      id de la etapa                      </param>
    ''' <returns>
    '''         Lista los inmuebles especificados, y devuelve la descripcion del tipo de moneda del primer registro encontrado
    ''' </returns>
    Public Shared Function consultaInmueble(ByVal descEmpresa As String, ByVal pUnidInmobiliaria As EunidInmobiliarias) As List(Of EproformaDetalle)
        Dim proformaDetalles As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaDetalle_buscXInmuebles", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pUnidInmobiliaria.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pUnidInmobiliaria.idEtapa
                cmd.Parameters.Add("@inmuebles", SqlDbType.NVarChar, 1000).Value = pUnidInmobiliaria.inmuebles
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformaDetalles = New List(Of EproformaDetalle)
                            Dim proformaDetalle As EproformaDetalle = Nothing
                            Do While dr.Read
                                proformaDetalle = New EproformaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("descEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("descModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetString(dr.GetOrdinal("descUndInmob")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("dsctoMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("BonoTechoPropio")), _
                                    dr.GetDecimal(dr.GetOrdinal("total")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoAdicionales")))
                                proformaDetalles.Add(proformaDetalle)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformaDetalles
    End Function

    '-------    REPORTE COMISION VENDEDRO    --------'    
    Public Shared Function selecionar_selXVendedorComision(ByVal descEmpresa As String, ByVal pProformaDetalle As EproformaDetalle, ByVal filtro As String) As List(Of EproformaDetalle)
        Dim vendedorComisiones As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_selXVendedorComision", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaDetalle.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaDetalle.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            vendedorComisiones = New List(Of EproformaDetalle)
                            Dim vendedorComision As EproformaDetalle = Nothing
                            Do While dr.Read
                                vendedorComision = New EproformaDetalle( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("valorVenta")), _
                                    dr.GetDecimal(dr.GetOrdinal("comision")))
                                vendedorComisiones.Add(vendedorComision)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return vendedorComisiones
    End Function

    '-------    MENU REPORTE  PROFORMA DETALLE  ------------'
    Public Shared Function ReporteProformaDetalle(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EproformaDetalle)
        Dim proformasDetalle As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporteDetalle", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                'cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformasDetalle = New List(Of EproformaDetalle)
                            Dim proforma As EproformaDetalle = Nothing
                            Do While dr.Read
                                proforma = New EproformaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")))
                                proformasDetalle.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformasDetalle
    End Function

    '-------    MENU REPORTE EVOLTA / VERSUS    ------------'
    Public Shared Function ReporteProformaDetalleXEmpresa(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EproformaDetalle)
        Dim proformasDetalle As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporteDetalleXEmpresa", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProforma.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                'cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformasDetalle = New List(Of EproformaDetalle)
                            Dim proforma As EproformaDetalle = Nothing
                            Do While dr.Read
                                proforma = New EproformaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")))
                                proformasDetalle.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformasDetalle
    End Function
    Public Shared Function ReporteProformaDetalleXVersus(ByVal descEmpresa As String, ByVal pProforma As EproformaCabecera) As List(Of EproformaDetalle)
        Dim proformasDetalle As List(Of EproformaDetalle) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporteDetalleXVersus", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProforma.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProforma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProforma.idEtapa
                'cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaDetalle.idProforma
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformasDetalle = New List(Of EproformaDetalle)
                            Dim proforma As EproformaDetalle = Nothing
                            Do While dr.Read
                                proforma = New EproformaDetalle( _
                                    dr.GetInt32(dr.GetOrdinal("idEmpresa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idProformaDetalle")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("monto")), _
                                    dr.GetDecimal(dr.GetOrdinal("dscto")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoFinal")))
                                proformasDetalle.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformasDetalle
    End Function
    '---------------------------------------'

End Class
